// Ionic Starter App

// angular.module is a global place for creating, registering and retrieving Angular modules
// 'starter' is the name of this angular module example (also set in a <body> attribute in index.html)
// the 2nd parameter is an array of 'requires'
// 'starter.services' is found in services.js
// 'starter.controllers' is found in controllers.js
angular.module('starter', ['ionic', 'starter.controllers', 'starter.services', 'ngCordova'])

    .run(function ($ionicPlatform) {
        $ionicPlatform.ready(function () {
            // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
            // for form inputs)
            if (window.cordova && window.cordova.plugins.Keyboard) {
                cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
            }
            if (window.StatusBar) {
                // org.apache.cordova.statusbar required
                StatusBar.styleDefault();
            }
        });
    })
    .controller("leftCtrl", function ($scope, $cordovaCamera) {
        $scope.changePhoto = function ($cordovaCamera) {
            var options = {
                quality: 50,
                allowEdit: true,
                targetWidth: 100,
                targetHeight: 100,
                saveToPhotoAlbum: false
            };
            $cordovaCamera.getPicture(options).then(function (imageData) {
                var image = document.getElementById('myPhoto');
                image.src = "data:image/jpeg;base64," + imageData;
            }, function (err) {
                // error
            });
        }
        $scope.addAttachment = function ($scope, $cordovaCamera, $ionicActionSheet) {
            var options = {
                quality: 50,
                allowEdit: true,
                targetWidth: 100,
                targetHeight: 100,
                saveToPhotoAlbum: false
            };
            $ionicActionSheet.show({
                buttons: [
                    {text: '相机'},
                    {text: '图库'}
                ],
                cancelText: '关闭',
                cancel: function () {
                    return true;
                },
                buttonClicked: function (index) {

                    navigator.camera.getPicture(onSuccess, onFail, { quality: 50,
                        destinationType: Camera.DestinationType.DATA_URL
                    });

                    function onSuccess(imageData) {
                        var image = document.getElementById('myPhoto');
                        image.src = "data:image/jpeg;base64," + imageData;
                    }

                    function onFail(message) {
                        alert('Failed because: ' + message);
                    }

                    //switch (index) {
                    //    case 0:
                    //
                    //        navigator.camera.getPicture( cameraSuccess, cameraError, cameraOptions );
                    //
                    //
                    //        $cordovaCamera.getPicture(options).then(function (imageData) {
                    //            var image = document.getElementById('myPhoto');
                    //            image.src = "data:image/jpeg;base64," + imageData;
                    //        }, function (err) {
                    //            // error
                    //        });
                    //        break;
                    //    case 1:
                    //        $cordovaDialogs.confirm("你好", "1233", ['OK1', 'Cancel']);
                    //
                    //        break;
                    //    default:
                    //        break;
                    //}
                    return true;
                }
            });
        }
    }).
    config(function ($stateProvider, $urlRouterProvider) {

        // Ionic uses AngularUI Router which uses the concept of states
        // Learn more here: https://github.com/angular-ui/ui-router
        // Set up the various states which the app can be in.
        // Each state's controller can be found in controllers.js
        $stateProvider

            // setup an abstract state for the tabs directive
            .state('tab', {
                url: "/tab",
                abstract: true,
                templateUrl: "templates/tabs.html"
            })

            // Each tab has its own nav history stack:

            .state('tab.dash', {
                url: '/dash',
                views: {
                    'tab-dash': {
                        templateUrl: 'templates/tab-dash.html',
                        controller: 'DashCtrl'
                    }
                }
            })
            .state('tab.dash-detail', {
                url: '/dash/:chatId',
                views: {
                    'tab-dash': {
                        templateUrl: 'templates/chat-detail.html',
                        controller: 'ChatDetailCtrl'
                    }
                }
            })

            .state('tab.chats', {
                url: '/chats',
                views: {
                    'tab-chats': {
                        templateUrl: 'templates/tab-chats.html',
                        controller: 'ChatsCtrl'
                    }
                }
            })
            .state('tab.chat-detail', {
                url: '/chats/:chatId',
                views: {
                    'tab-chats': {
                        templateUrl: 'templates/chat-detail.html',
                        controller: 'ChatDetailCtrl'
                    }
                }
            })

            .state('tab.account', {
                url: '/account',
                views: {
                    'tab-account': {
                        templateUrl: 'templates/tab-account.html',
                        controller: 'AccountCtrl'
                    }
                }
            });

        // if none of the above states are matched, use this as the fallback
        $urlRouterProvider.otherwise('/tab/dash');

    });
